package lanqiaobei2016;

public class _06凑算式 {
    /**
     *
          B      DEF
     A + --- + ------- = 10
          C      GHI
     这个算式中A~I代表1~9的数字，不同的字母代表不同的数字。
     比如：
     6+8/3+952/714 就是一种解法，
     5+3/1+972/486 是另一种解法。
     这个算式一共有多少种解法？  //考虑通分情况
     */
    static int ans = 0;
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5,6,7,8,9};
        per(a,0);
        System.out.println(ans);
    }

    private static void per(int[] a, int k) {
        if (k == 9){
            int x = a[3] * 100 + a[4] * 10 + a[5];
            int y = a[6] * 100 + a[7] * 10 + a[8];
            if ((a[1] * y  + a[2] * x) % (y * a[2]) == 0 && a[0] + (a[1] * y  + a[2] * x) / (y * a[2]) == 10){
                ans ++;
            }
        }
        for (int i = k ; i < 9 ; i++){
            int temp = a[i];
            a[i] = a[k];
            a[k] = temp;

            per(a,k+1);

            temp = a[i];
            a[i] = a[k];
            a[k] = temp;

        }
    }
}
